One of the functions of a product such as Natural Sketch is to allow the user to draw 3D models. To do such a thing, the user has different possibilities. For example, in the scene, there can be a surface (a car, a sphere . . . ) on which the user will draw. As the surface is in three dimensions, the curves on the surface will be 3D curves. But when the user has no surface on which he can rely on, i.e. when he wants to create a 3D model from scratch, he needs to proceed otherwise.
In that case, the user switches from a drawing command button to a plane selection command button, and vice versa, until all the planes are defined. Starting from scratch, he first needs to define on which plane he is going to draw. For that, the user can start to draw on a default plane (e.g. the xz plane). If the user wants to start to draw on a plane which is different from the default plane, he can also press the plane selection command button. A plane manipulator (square-shaped in Natural Sketch) enables the user to choose and move (translation, rotation . . . ) the plane on which he wants to start to draw. When the pointing element (a cursor) is moved close to one of the edges of the plane manipulator, the edge is highlighted. The drawing plane can then be rotated around an axis which passes through the center of the plane manipulator, and which is parallel to the highlighted edge. With a left press of the mouse on the plane manipulator, the user can change the drawing plane, according to the angle which is selected during the moving of the mouse. He can also change the origin of the drawing plane. For that, the user moves the pointing element on a central square of the plane manipulator which is located inside the square-shaped plane manipulator. A visual feedback, such as a highlighting of the central square, occurs, when the pointing element is moved in the central square. Then, the user can translate the origin of the drawing plane along the normal of the plane of the central square, while pressing the left button of the mouse. After that, the user can press (e.g. with the left-button of the mouse or with a stylus/finger) the drawing command button, and sketches (e.g. with the left-button of the mouse or with a stylus/finger) at least one first stroke in the drawing plane as defined above. Then, if the user wants to change the drawing plane, he has to press again the plane selection command button so as to use the plane manipulator. Throughout the drawing process, the user can navigate in the three-dimensional scene in order to change the viewpoint, by using, for example, a combination of moving the mouse while pressing the middle button of the mouse.
This way to proceed during a creation phase is quite cumbersome. Indeed, with the use of the plane manipulator, a lot of mouse displacements are needed to change the planes to be defined: first, to launch the plane selection command (which is generally outside the scene), and then to put the plane in the desired orientation and position with the plane manipulator. This way to proceed is also time consuming and not intuitive, since the user knows what he wants to do, he has some inspiration but he keeps going back and forth in the plane selection command to define the plane he needs. Another drawback of the existing solution is the lack of simplicity: to get a plane with the desired orientation and position, the user has to combine rotations (for example, rotation around one of the four edges of the plane) and different translations (for example, translation along the normal of the plane).